package com.neuronbit.businessflow.intellij.model;

import com.neuronbit.businessflow.intellij.model.annotation.HiddenProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * The type Edge.
 */
@Getter
@ToString(callSuper = true)
public class Edge extends Node {
    private String value;
    private String source;
    private String target;
    @Setter
    private Node sourceNode;
    @Setter
    private Node targetNode;

    /**
     * Instantiates a new Edge.
     *
     * @param id   the id
     * @param name the name
     */
    public Edge(String id, String name) {
        super(id, name, NodeType.EDGE);
    }

    /**
     * Gets value.
     *
     * @return the value
     */
    @HiddenProperty
    public String getValue() {
        return value;
    }

    /**
     * Sets value.
     *
     * @param value the value
     */
    public void setValue(String value) {
        this.value = value;
    }

    /**
     * Gets source.
     *
     * @return the source
     */
    @HiddenProperty
    public String getSource() {
        return source;
    }

    /**
     * Sets source.
     *
     * @param source the source
     */
    public void setSource(String source) {
        this.source = source;
    }

    /**
     * Gets target.
     *
     * @return the target
     */
    @HiddenProperty
    public String getTarget() {
        return target;
    }

    /**
     * Sets target.
     *
     * @param target the target
     */
    public void setTarget(String target) {
        this.target = target;
    }
}
